package config

import (
	"github.com/zeromicro/go-zero/core/stores/redis"
	"github.com/zeromicro/go-zero/rest"
	"github.com/zeromicro/go-zero/zrpc"
)

type Config struct {
	rest.RestConf

	Auth struct {
		AccessSecret string
		AccessExpire int64
	}

	Query struct {
		DefaultAmount            int64
		MaxAmount                int64
		ExpireTime               int
		PhotoForumId             int64
		PostForumId              int64
		ColumnForumId            int64
		DefaultForumId           int64
		DSForumId                int64
		TesterCategoryId         int64
		DefaultElasticSearchHost string
		MaxPoints                int64
		GorseUrl                 string
	}

	KqForumReactionConf struct {
		Brokers []string
		Topic   string
	}

	KqDeferredUpdateShoppingCartConf struct {
		Brokers []string
		Topic   string
	}

	KqDeferredUpdateTradeStateConf struct {
		Brokers []string
		Topic   string
	}

	KqDeferredInquireAIConf struct {
		Brokers []string
		Topic   string
	}

	KqDistributePointsConf struct {
		Brokers []string
		Topic   string
	}

	NfsConf struct {
		ProxyUrl        string
		StaticUrl       string
		AllowedFileExts string
		MaxImageSize    uint64
		MaxVideoSize    uint64
		MaxAudioSize    uint64
		MaxOtherSize    uint64
		PublicStorePath string
		PathPrefix      string
	}

	WxMiniConf WxMiniConf
	WxPayConf  WxPayConf

	BizRedis redis.RedisConf
	CROSConf CROSConf

	AttachmentRpc  zrpc.RpcClientConf
	BackendRpc     zrpc.RpcClientConf
	SettingRpc     zrpc.RpcClientConf
	BlogRpc        zrpc.RpcClientConf
	ForumRpc       zrpc.RpcClientConf
	ProductRpc     zrpc.RpcClientConf
	PromotionRpc   zrpc.RpcClientConf
	OrderRpc       zrpc.RpcClientConf
	UserRpc        zrpc.RpcClientConf
	RecommendedRpc zrpc.RpcClientConf
}
